package {{package}}

import {{javaxPackage}}.inject.Inject
import {{javaxPackage}}.inject.Singleton
{{#useBeanValidation}}
import {{javaxPackage}}.validation.Valid
import {{javaxPackage}}.validation.constraints.DecimalMax
import {{javaxPackage}}.validation.constraints.DecimalMin
import {{javaxPackage}}.validation.constraints.Email
import {{javaxPackage}}.validation.constraints.Max
import {{javaxPackage}}.validation.constraints.Min
import {{javaxPackage}}.validation.constraints.NotNull
import {{javaxPackage}}.validation.constraints.Pattern
import {{javaxPackage}}.validation.constraints.Size
{{/useBeanValidation}}
import misk.web.HttpCall
import misk.web.PathParam
import misk.web.QueryParam
import misk.web.RequestBody
import misk.web.RequestHeader
{{#imports}}
import {{import}}
{{/imports}}

/**
 * @TODO("Fill out implementation")
 */
{{#operations}}
@Singleton
class {{classname}}Impl @Inject constructor(
): {{classname}} {
{{#operation}}

    override fun {{operationId}}({{#allParams}}
        {{>queryParams}}{{>pathParams}}{{>headerParams}}{{>cookieParams}}{{>bodyParams}}{{>formParams}}{{^-last}}, {{/-last}}{{/allParams}}){{#returnType}}: {{{returnType}}}{{/returnType}} {
        TODO()
    }
{{/operation}}
}
{{/operations}}
